﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Text.RegularExpressions;
using System.Data;
using System.Windows.Controls;
using System.Globalization;
using System.Windows.Data;
using System.Collections.ObjectModel;
using System.Windows.Markup;
using System.Windows.Media;

namespace LMDB
{

    /// <summary>
    /// Valideerime kasutaja poolt sisestatud väärtuste sobivust
    /// ja kui sisestatud andmed ei ole valiidsed siis anname kasutajale
    /// sellest märku ning hoiame ära mittesihipärase andmetesisestuse 
    /// tõttu vigade tekkimise programmis.
    /// </summary>

    public static class TextBoxExtension
    {

        /// <summary>
        /// Kontrollib nime sisestamist. Nimi ei tohi olla tühi ja peab
        /// sisaldada ainult tähti
        /// </summary>
        /// <param name="textBox"></param>
        /// <returns>Tagastab kas väärtus on valiidne või mitte</returns>
        public static bool NimiIsValid(this TextBox textBox)
        {
            if (string.IsNullOrWhiteSpace(textBox.Text))
            {
                textBox.BorderBrush = Brushes.Red;
                textBox.ToolTip = "See väli on kohustuslik!";
                return false;
            }
            if (!string.IsNullOrWhiteSpace(textBox.Text))
            {
                foreach (char c in textBox.Text)
                {
                    if ((!(char.IsLetter(c))) && (!(char.IsWhiteSpace(c))))
                    {
                        textBox.BorderBrush = Brushes.Red;
                        textBox.ToolTip = "Kasuta ainult tähti, erimärgid ja numbrid ei ole lubatud!";
                        return false;
                    }
                }
                textBox.BorderBrush = Brushes.Olive;
                textBox.ToolTip = null;
               
            }
            return true;
        }

        public static bool emailIsValid(this TextBox textBox)
        {

            Regex re = new Regex(@"[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9_\-\.]+\.[a-zA-Z]{2,5}");
            if(!string.IsNullOrWhiteSpace(textBox.Text) && (!(re.IsMatch(textBox.Text))))
            {
                textBox.BorderBrush = Brushes.Red;
                textBox.ToolTip = "Palun sisestage email kujul [näide]@[näide].[ee]";
                return false;
            }

            textBox.BorderBrush = Brushes.Olive;
            textBox.ToolTip = null;
            return true;
        }

        public static bool aastaIsValid(this TextBox textBox)
        {
            if (!string.IsNullOrWhiteSpace(textBox.Text))
            {
                foreach (char c in textBox.Text)
                {
                    if (!(char.IsNumber(c)))
                    {
                        textBox.BorderBrush = Brushes.Red;
                        textBox.ToolTip = "Palun sisesta aasta näite kujul, näide [2010]!";
                        return false;
                    }
                }
                textBox.BorderBrush = Brushes.Olive;
            }

            return true;
        }

        public static bool FilmIsValid(this TextBox textBox)
        {
            if (string.IsNullOrWhiteSpace(textBox.Text))
            {
                
                    textBox.BorderBrush = Brushes.Red;
                    textBox.ToolTip = "Palun sisesta filmi nimi!";
                    return false;
                   
                
            }
            textBox.BorderBrush = Brushes.Olive;
            textBox.ToolTip = null;
            return true;
        }

        public static bool LaenutusIsValid(this string date)
        {
            if (string.IsNullOrWhiteSpace(date))
            {
                return false;
            }
            return true;
        }
    }
    
}
